var prefix = "/jzweb/trackDrawRegular";
var isDrawing = null; // 标记是否正在进行抽签
var loadingIndex =null
let falg = false;

$(function() {
    load();
});

$(document).ready(function() {
    // lottery()
});

function load() {
    $('#exampleTable')
        .bootstrapTable(
            {
                method : 'get', // 服务器数据的请求方式 get or post
                url : prefix + '/trackRegularList', // 服务器数据的加载地址
                iconSize : 'outline',
                toolbar : '#exampleToolbar',
                theadClasses: "thead-dark",
                striped : true, // 设置为true会有隔行变色效果
                dataType : "json", // 服务器返回的数据类型
                singleSelect : false, // 设置为true将禁止多选
                showColumns : false, // 是否显示内容下拉框（选择显示的列）
                queryParamsType : "",
                // //设置为limit则会发送符合RESTFull格式的参数
                queryParams : function(params) {
                    return {
                        //说明：传入后台的参数包括offset开始索引，limit步长，sort排序列，order：desc或者,以及所有列的键值对
                        pageNumber : params.pageNumber,
                        pageSize : params.pageSize,
                        unitName:$('#unitName').val(),
                    };
                },
                // 返回false将会终止请求
                responseHandler : function(res){
                    if(res.code !== '0') {
                        layer.msg(res.msg);
                        return false
                    }
                    isDrawing = res.data.hasDraw
                    return {
                        "rows": res.data.trackDrawDOList//数据
                    };
                },
                columns : [
                    {
                        field : 'unitName',
                        title : '参赛院校'
                    },
                    {
                        field : 'name',
                        title : '姓名'
                    },
                    {
                        field : 'trackDraw',
                        title : '赛道信息',
                        class : 'trackA',
                        formatter : function(value, row, index) {
                            if(isDrawing) {
                                return  value
                            }
                            return '-'
                        }
                    }
                    // {
                    //     field : 'teacher',
                    //     title : '指导老师'
                    // },
                    // {
                    //     field : 'sex',
                    //     title : '性别'
                    // },
                ]
            });
}

function reLoad() {
    $('#exampleTable').bootstrapTable('refresh');
}

function add() {
    layer.open({
        type : 2,
        title : '增加',
        maxmin : true,
        shadeClose : false, // 点击遮罩关闭层
        area : [ '800px', '520px' ],
        content : prefix + '/add' // iframe的url
    });
}

function edit(id) {
    layer.open({
        type : 2,
        title : '编辑',
        maxmin : true,
        shadeClose : false, // 点击遮罩关闭层
        area : [ '800px', '520px' ],
        content : prefix + '/edit/' + id // iframe的url
    });
}


//导出
function downExcelModelFile() {
    layer.confirm('您确定要导出吗？', {
        btn1:function(index){
            if(!isDrawing) {
                layer.msg('请先完成抽签')
                layer.close(index);
                return
            }
            try {
                window.location.href = prefix + "/downloadImportTemplate";
                layer.close(index)
            }catch (e) {
                layer.msg('导出失败')
            }

        }
    });


}

// 抽签
function trackDrawCreate() {
    return  new Promise((resolve, reject) => {
        try {
            $.ajax({
                type : "get",
                url : prefix +"/listTrackDrawRegular",
                async : false,
                success : function(res) {
                    if (res.code === '0') {
                        resolve(res)
                        $('#exampleTable').bootstrapTable('load',res.data)
                    } else {
                        reject(res)
                        // parent.layer.msg(res.msg)
                    }

                }
            });
        }catch (e) {
            reject(e)
        }

    })

}


// 开始抽签
async function startDrawButton  () {
    let rows = $('#exampleTable').bootstrapTable('getData'); // 获取表格数据
    // 赛道
    let track = []
    try {
        const res = await gettrack()
        for (let i = 0; i < res.length; i++) {
            track.push(res[i].name)
        }
    }catch (e) {
        layer.msg('赛场获取错误')
    }

    isDrawing = true
    if (rows.length === 0)  return layer.msg('暂无选手信息')

    falg = true
    $(".trackA").each(function (k,v){
        if(k !==0) {
            let text = ''
            for (let i = 0; i < track.length; i++) {
                text += '<div class="scrolling-text">' + track[i] + '</div>';
            }
            $(v).html(`<div class="scrolling-container">${text}</div>`)
        }
    })
}

// 停止抽签
function stopDrawButton() {
    if(falg){
        loadingIndex =  layer.load(1, {
            shadeClose: false,
            title: '加载中..',
            shade: [0.8,'#fff'] //0.1透明度的白色背景
        });
        try {
            trackDrawCreate().then((res) => {
                if(res.code === '0') {
                    layer.msg('抽签已完成')
                    layer.close(loadingIndex)
                    falg = false
                }
            })
        }catch (e) {
            layer.msg(e.msg)
            layer.close(loadingIndex)
        }
    }else {
        layer.msg('抽签已完成')
    }
}

// 查询赛场
function gettrack() {
    return  new Promise((resolve, reject) => {
        try{
            $.ajax({
                type : "post",
                url : prefix +"/dictDOList",
                headers: { 'Content-Type': 'application/json;charset=UTF-8' },
                data: JSON.stringify({type: 'trackDrawConfigSubset'}),
                async : false,
                success: function(response) {
                    if(response.code === '0') {
                        resolve(response.data)
                        return
                    }else {
                        reject(response)
                        layer.msg(response.msg);
                    }
                },
                error: function(error) {
                    reject(error)
                    layer.msg(error);
                }
            });
        }catch (e) {
            layer.msg(e);
        }
    })
}